﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanLyGiaoDuc_Winform.ServiceXuLyThongTinLop;
using QuanLyGiaoDuc_Winform.ServiceXuLyThongTinHocPhan;

namespace QuanLyGiaoDuc_Winform
{
    public partial class FormMoLopHoc : Form
    {
        public FormMoLopHoc()
        {
            InitializeComponent();
            tb_NamHoc.Text = DateTime.Now.Year.ToString();
        }

        ServiceXuLyThongTinLop.ServiceXuLyThongTinLopSoapClient proxy_lop = new ServiceXuLyThongTinLopSoapClient ();
        ServiceXuLyThongTinHocPhan.ServiceXuLyThongTinHocPhanSoapClient proxy_hocphan = new ServiceXuLyThongTinHocPhan.ServiceXuLyThongTinHocPhanSoapClient();

        private int _iNamHoc;

        public int INamHoc
        {
            get { return _iNamHoc; }
            set { _iNamHoc = value; }
        }

        private int _iHocKy;

        public int IHocKy
        {
            get { return _iHocKy; }
            set { _iHocKy = value; }
        }

        ServiceXuLyThongTinHocPhan.HOCPHANMO[] arrHocPhanMo;

        public ServiceXuLyThongTinHocPhan.HOCPHANMO[] ArrHocPhanMo
        {
            get { return arrHocPhanMo; }
            set { arrHocPhanMo = value; }
        }

        private void tb_NamHoc_Leave(object sender, EventArgs e)
        {
            string _sNamHoc = tb_NamHoc.Text.Trim();
            if (_sNamHoc == "")
            {
                MessageBox.Show("Thiếu thông tin năm học!", "Lỗi", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
                return;
            }
        }

        private void tb_HocKy_Leave(object sender, EventArgs e)
        {
            string _sHocKy = tb_HocKy.Text.Trim();
            if (_sHocKy == "")
            {
                MessageBox.Show("Thiếu thông tin học kỳ!", "Lỗi", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
                return;
            }
            _iHocKy = int.Parse(_sHocKy);
            if (_iHocKy != 1 && _iHocKy != 2)
            {
                MessageBox.Show("Thông tin học kì nhập vào không chính xác!", "Lỗi", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
                return;
            }
        }

        private void loadDataGrid_KetQuaMoMon()
        {
            arrHocPhanMo = null;
            arrHocPhanMo = proxy_hocphan.layDanhSachHocPhanMo_NamHoc_HocKy(_iNamHoc, _iHocKy);

            dataGrid_KetQuaMoMon.Rows.Clear();

            for (int i = 0; i < arrHocPhanMo.Count(); i++)
            {
                dataGrid_KetQuaMoMon.Rows.Add(i + 1, arrHocPhanMo[i].MAKHOAHOC, arrHocPhanMo[i].MAMONHOC, arrHocPhanMo[i].NAMHOC, arrHocPhanMo[i].HOCKY, arrHocPhanMo[i].SLSVDK_DUKIEN);
                dataGrid_KetQuaMoMon.Rows[i].Tag = arrHocPhanMo[i];
            }
        }

        private void tb_HocKy_TextChanged(object sender, EventArgs e)
        {
            _iNamHoc = int.Parse(tb_NamHoc.Text);
            loadDataGrid_KetQuaMoMon();
        }

        private void btn_MoLop_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGrid_KetQuaMoMon.Rows.Count - 1; i++)
            {
                HOCPHANMO hpmo = (HOCPHANMO)dataGrid_KetQuaMoMon.Rows[i].Tag;
                hpmo.SLSVDK_DUKIEN = int.Parse(dataGrid_KetQuaMoMon.Rows[i].Cells[5].Value.ToString());
                if (hpmo.SLSVDK_DUKIEN.ToString() == "")
                {
                    MessageBox.Show("Thiếu thông tin số lượng sinh viên đăng kí dự kiến mở" + hpmo.SLSVDK_DUKIEN.ToString() + "!", "Lỗi", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
                    return;
                }
                else
                {
                    int _ketQuaSua = proxy_hocphan.suaHocPhanMo_SLSVDK_DUKIEN(hpmo.SLSVDK_DUKIEN, hpmo.MAKHOAHOC, (int)hpmo.MAMONHOC, hpmo.NAMHOC, (int)hpmo.HOCKY);
                    if (_ketQuaSua == 0)
                    {
                        string _sErrorRow = (i + 1).ToString();
                        MessageBox.Show("Có lỗi tại dòng " + _sErrorRow + "!", "Lỗi", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
                        return;
                    }
                    //MessageBox.Show(hpmo.MAHPMO.ToString());
                    int _ketQuaThem = proxy_lop.themLopMoi(hpmo.MAHPMO);
                    if (_ketQuaThem == 0)
                    {
                        string _sErrorRow = (i + 1).ToString();
                        MessageBox.Show("Có lỗi tại dòng " + _sErrorRow + "!", "Lỗi", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
                        return;
                    }
                }
            }
            MessageBox.Show("Đã tạo lớp mới thành công!", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
            loadDataGrid_KetQuaMoMon();
        }

        private void FormMoLopHoc_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }


    }
}
